home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / comm / robo42_a.zip / SCRIPT.DOC < prev    next >
Text File  |  1992-07-23  |  72KB  |  1,888 lines

  1.                       
  2.  
  3.         ┬─┬─────┐
  4.         │ │     │
  5.         │ ├───┬─┘ ┌┬──┐ ┬┬─┐  ┌┬──┐ ┌┬──┐ ┌┬──┐ ┌┬─┬─┐ ┌┬─┬─┐ (tm)
  6.         │ │   │   ││  │ │├─┴┐ ││  │ ││    ││  │ ││ │ │ ││ │ │
  7.         ┴─┴   ┴── └┴──┘ ┴┴──┘ └┴──┘ └┴──┘ └┴──┘ ┴┴ ┴ ┴ ┴┴ ┴ ┴
  8.                                                    ┬  ┌┐ ┌──┬┐
  9.         The ultimate tool for unattended           └──┤│ ┌┬─┴┘
  10.         BBS communications.                           └┘o└┴──┘
  11.  
  12.  
  13.                       ┌────────────────────────────┐
  14.                       │  Script Language Reference │
  15.                       └────────────────────────────┘
  16.  
  17.  
  18.  
  19.  
  20.                   (c) Copyright 1992, Parsons Consulting
  21.  
  22.  
  23.  
  24.  
  25.  
  26.           Table of Contents                                                
  27.  
  28.  
  29.           ROBOCOMM 4.1 SCRIPT PROCESSING ...............................  1
  30.           INTRODUCTION .................................................  1
  31.           SCRIPT COMMENTS ..............................................  1
  32.           DOCUMENTATION SYNTAX .........................................  1
  33.           LABELS .......................................................  2
  34.           MACROS .......................................................  2
  35.           PARAMETERS ...................................................  3
  36.           SCRIPT COMMANDS ..............................................  4
  37.           CAPTURE "<cFile>" [OVERWRITE | APPEND] .......................  4
  38.           CD "<cDirectory>" ............................................  5
  39.           CLEAR [WATCHES] ..............................................  5
  40.           CLOSE ........................................................  5
  41.           COPY "<cSource>" [TO "<cTarget>"] ............................  6
  42.           DELAY <nSeconds> .............................................  6
  43.           DISABLE <nWatch> .............................................  7
  44.           DOWNLOAD ["<cFileSpec>"] [USING "<cProtocol>"] ...............  7
  45.           ENABLE <nWatch> ..............................................  8
  46.           ERASE "<cFile>" ..............................................  9
  47.           EXIT <nReturnVal> ............................................  9
  48.           GOSUB <label> ................................................  9
  49.           GOTO <label> ................................................  10
  50.           HANGUP ......................................................  10
  51.           IF [NOT] <condition> ["<argument>"] <command> ...............  11
  52.           EMPTY .......................................................  11
  53.           EXIST .......................................................  11
  54.           DAY .........................................................  11
  55.           DIR .........................................................  11
  56.           CONNECTED ...................................................  12
  57.           ERRORLEVEL ..................................................  12
  58.           IMPORT ["A"|"D"] "<cFile>" [EXISTONLY] ......................  12
  59.           JOIN "<cConference>" ........................................  13
  60.           MD "<cDirectory>" ...........................................  13
  61.           MESSAGE "<cString>" .........................................  13
  62.           NOTES "<cFile>" .............................................  14
  63.           PARAMETER [nNumber] "<cPrompt>" .............................  14
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.                                         - i -
  85.  
  86.  
  87.  
  88.  
  89.  
  90.           Table of Contents                                                
  91.  
  92.  
  93.           PASSWORD "<cPassword>" ......................................  14
  94.           RD "<cDirectory>" ...........................................  14
  95.           RENAME "<cfile>" [TO] "<cNewName>" ..........................  15
  96.           RENUMBER "<cFile>" [<nCount>] ...............................  15
  97.           RETURN ......................................................  15
  98.           RUN "<cDosCommand>" [KEYBOARD "<cKeyString>"] ...............  16
  99.           SEND "<cString>" ............................................  20
  100.           SOUND <nFrequency> <nDuration> ..............................  21
  101.           STATISTICS "<cFile>" ........................................  22
  102.           TERMINAL ....................................................  22
  103.           TIMEOUT <nSeconds> ..........................................  22
  104.           TITLE "<cString>" ...........................................  22
  105.           UPLOAD "<cFileSpec>" [USING "<cProtocol>"] ..................  23
  106.           VENUE <cVenueCode> ..........................................  23
  107.           WAITFOR "<cString>" [FAILURE <command>] .....................  24
  108.           WAITUNTIL ["<cTime>"] ["<cDate>"] ...........................  25
  109.           WHEN "<cString>" <command> ..................................  25
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.                                        - ii -
  145.  
  146.  
  147.  
  148.           
  149.  
  150.  
  151.            I. Robocomm 4.1 Script Processing
  152.  
  153.                * INTRODUCTION
  154.                  
  155.                  Robocomm's script processing system is a high level
  156.                  interpreted language designed to extend the automation
  157.                  capabilities of the software in instances where the
  158.                  pre-defined "Agenda Items" do not perform the service
  159.                  required.
  160.                  
  161.                  If you have done any programming at all on the PC, even at
  162.                  the batch file level, then Robocomm's script language
  163.                  should be fairly intuitive and straight-forward.  The
  164.                  script commands are processed sequentially with the
  165.                  ability to jump to "labels" like DOS batch files using
  166.                  GOTO and GOSUB statements like BASIC programs.  
  167.                  
  168.                  Perhaps the most significant capability of the script
  169.                  language is its ability to prompt the user for an
  170.                  unlimited number of parameters from the agenda
  171.                  creation/editing screen.  This allows for a great deal of
  172.                  flexibility in the creation of "generic" scripts that will
  173.                  work on a wide variety of systems.  At the time the
  174.                  "Execute Script" agenda item is created, the script itself
  175.                  asks the user to supply any needed information that is
  176.                  specific to the script run, such as a door number or a
  177.                  file name.
  178.                  
  179.                  In addition, all of the prompt definitions and other
  180.                  BBS-Specific information for each BBS can be accessed from
  181.                  within the script, allowing the script author to limit the
  182.                  amount of "hard coded" search text within the script.  
  183.                  
  184.                  What all of this means is that it is now possible for
  185.                  people to create their own generic "agenda items" with
  186.                  Robocomm's script language.  These scripts can then be
  187.                  distributed and run without modification by other Robocomm
  188.                  users!
  189.                  
  190.  
  191.                * SCRIPT COMMENTS
  192.                  
  193.                  You may place non-executable descriptive text anywhere you
  194.                  like within a script file, as long as it is on a line by
  195.                  itself and is preceded by a semicolon.
  196.                  
  197.  
  198.                * DOCUMENTATION SYNTAX
  199.  
  200.  
  201.  
  202.  
  203.           _________________________________________________________________
  204.           Robocomm 4.1 - Script Language Reference                 Page: 1
  205.  
  206.  
  207.  
  208.  
  209.           
  210.  
  211.  
  212.                  
  213.                  As you read through this documentation, places where a
  214.                  command argument is to be entered by the script author are
  215.                  indicated between angle brackets <like this>.  Text
  216.                  between angle brackets and also surrounded by quotation
  217.                  marks indicates that the script author is to input a word
  218.                  surrounded by quotation marks:
  219.                  
  220.                  "<cFile>"  --> "robocomm.cap"
  221.                  
  222.                  Reserved Words (or COMMANDS) appear in all UPPER CASE.
  223.                  Optional command arguments are surrounded by square
  224.                  brackets [LIKE THIS].  When a choice between one or more
  225.                  command arguments is required, all available options will
  226.                  be listed, separated by the pipe symbol.  Thus, an
  227.                  optional command argument with three choices will look
  228.                  like this: 
  229.                  
  230.                  [ SEVERAL | OPTIONAL | COMMANDS ]
  231.                  
  232.  
  233.                * LABELS
  234.                  
  235.                  Labels in Robocomm scripts are created by starting a line
  236.                  with a colon character.  Many script commands allow
  237.                  command control to quickly jump forward or backward within
  238.                  a script file be referencing a label name.  Labels must be
  239.                  on a line all by themselves.  Robocomm will use all text
  240.                  contained between the colon character and the first space
  241.                  or end of line as the label name.  The following are all
  242.                  examples of valid label lines:
  243.                  
  244.                  :ERROR (something must have gone wrong)
  245.                  :start
  246.                  :This-Is-An-Example-Of-A-Very-Long-Label-Indeed!
  247.                  
  248.  
  249.                * MACROS
  250.                  
  251.                  Most commands ask for text to be supplied as an argument.
  252.                  Whenever that text is contained within quotes, several
  253.                  "macros" can be used with specific meanings.  All Robocomm
  254.                  script macros are indicated by surrounding text by percent
  255.                  signs.  At script run-time, these macros will be replaced
  256.                  with the appropriate text before being used by the
  257.                  specified script command.
  258.                  
  259.  
  260.  
  261.  
  262.  
  263.           _________________________________________________________________
  264.           Robocomm 4.1 - Script Language Reference                 Page: 2
  265.  
  266.  
  267.  
  268.  
  269.           
  270.  
  271.  
  272.                  1. %ID% - Translated to the BBS ID of the currently
  273.                     connected BBS.
  274.  
  275.                  2. %QWKDIR% - Translated to the configured download
  276.                     directory for mail packets.
  277.  
  278.                  3. %REPDIR% - Translated to the configured directory for
  279.                     outgoing replies.
  280.  
  281.                  4. %DLDIR% - Translated to the configured file download
  282.                     directory.
  283.  
  284.                  5. %ULDIR% - Translated to the configured file upload
  285.                     directory.
  286.  
  287.                  6. %DOW% - Translated to three characters indicating the
  288.                     current day of the week:  MON,TUE,WED,THU,FRI,SAT,SUN
  289.  
  290.                  7. %DOM% - Translated to two numeric characters indicating
  291.                     the current day of the month.  Range 01-31.
  292.  
  293.                  8. %MONTH% - Translated to three characters indicating the
  294.                     current month:
  295.                     JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
  296.  
  297.                  9. %NMONTH% Translated to two numeric characters
  298.                     indicating the month of the year.
  299.  
  300.                 10. %YEAR% - Translated to 4 numeric characters indicating
  301.                     the current year, e.g. 1991
  302.  
  303.                 11. %BBS##% - Translated to field number ## from the
  304.                     Directory-BBS record for the currently connected BBS.
  305.                     See Appendix "A" for a complete list of the BBS##
  306.                     macros.
  307.  
  308.                     a) ## is the field from BBS40.DBF to return.
  309.  
  310.                 12. %P##% - Translated to the text parameter number ##,
  311.                     which was entered by the user when he/she created the
  312.                     currently running "execute script" agenda item.
  313.  
  314.                 13. %WC#% - Translated to Wildcat Command number #.
  315.  
  316.                * PARAMETERS
  317.                  
  318.                  With Robocomm, you can set up scripts which prompt the
  319.                  user for input when an "Execute Script" agenda item is
  320.  
  321.  
  322.  
  323.           _________________________________________________________________
  324.           Robocomm 4.1 - Script Language Reference                 Page: 3
  325.  
  326.  
  327.  
  328.  
  329.           
  330.  
  331.  
  332.                  being created.  To do this, simply embed a statement
  333.                  similar to the following in your script file:
  334.                  
  335.                  PARAMETER "Enter your mother's maiden name:"
  336.                  
  337.                  When the user is creating the agenda, Robocomm will pause
  338.                  and ask the question specified between the quotes on the
  339.                  parameter line.  The user will be allowed to enter up to
  340.                  128 characters of any type in response to the question.
  341.                  
  342.                  To access the text input by the user, the script author
  343.                  embeds %P##% into his/her script file at any location
  344.                  where double quotes are to surround text. In the text
  345.                  above, ## represents the parameter number you wish to
  346.                  access. 
  347.                  
  348.                   Continuing our example, to send the user's mother maiden
  349.                  name to the BBS you would use the following script
  350.                  command:
  351.                  
  352.                  SEND "%P1%
  353.                  
  354.                  In the example above the number "1" is specified to access
  355.                  the parameter text input in response to the first
  356.                  PARAMETER statement which is contained in the file.  It is
  357.                  important to understand that Robocomm numbers the
  358.                  parameters so that they correspond to the same order as
  359.                  the PARAMETER statements within the text file.  For a
  360.                  working example of PARAMETERs, examine the file
  361.                  SET_PCB.RS.
  362.                  
  363.  
  364.           II. Script Commands
  365.  
  366.                * CAPTURE "<cFile>" [OVERWRITE | APPEND]
  367.                  
  368.                  Opens capture file <cFile> and closes any capture file
  369.                  previously opened.  
  370.                  
  371.                  Options:  If OVERWRITE is specified, then the contents of
  372.                  any existing <cFile> will be replaced with the captured
  373.                  data.  If APPEND is specified
  374.                  
  375.                  Defaults:  <cFile> defaults to the current BBS ID with a
  376.                  CAP extension.  The file creation mode defaults to APPEND.
  377.                  
  378.                  Example:
  379.                  
  380.  
  381.  
  382.  
  383.           _________________________________________________________________
  384.           Robocomm 4.1 - Script Language Reference                 Page: 4
  385.  
  386.  
  387.  
  388.  
  389.           
  390.  
  391.  
  392.                     CAPTURE "\ROBOCOMM\LOGS\CHESSGAM.CAP" OVERWRITE
  393.                  
  394.                  See Also:
  395.                     CLOSE
  396.                  
  397.  
  398.                * CD "<cDirectory>"
  399.                  
  400.                  Changes the current DOS drive and/or directory to
  401.                  <cDirectory>.
  402.                  
  403.                  Note: The Robocomm home drive and directory is always
  404.                  restored upon termination of script processing.
  405.                  
  406.                  Note: If the specified directory does not exist, Robocomm
  407.                  will make a log notation and abort the script processing.
  408.                  
  409.                  Example:
  410.                  
  411.                     CD "F:\TEMP\LISTS"
  412.                  
  413.                  See Also:
  414.                     MD
  415.                     RD
  416.                  
  417.  
  418.                * CLEAR [WATCHES]
  419.                  
  420.                  Clears all text watches installed via the WHEN command. 
  421.                  
  422.                  Robocomm adds another watch item each time you issue the
  423.                  WHEN command from within a script.  Deactivating a watch
  424.                  with the DISABLE command does not actually remove it from
  425.                  the list of text items which are compared to all incoming
  426.                  text.  The CLEAR command should be used when you wish to
  427.                  discard the entire "watch list."  The next WHEN command
  428.                  issued after a CLEAR will install watch #1.
  429.                  
  430.                  See Also:
  431.                     WHEN
  432.                     WAITFOR
  433.                     DISABLE
  434.                     ENABLE
  435.                  
  436.  
  437.                * CLOSE
  438.                  
  439.  
  440.  
  441.  
  442.  
  443.           _________________________________________________________________
  444.           Robocomm 4.1 - Script Language Reference                 Page: 5
  445.  
  446.  
  447.  
  448.  
  449.           
  450.  
  451.  
  452.                  Closes any open capture file started via the CAPTURE
  453.                  command.  If no capture file is currently active, the
  454.                  command is ignored.
  455.                  
  456.                  See Also:
  457.                     CAPTURE
  458.                  
  459.  
  460.                * COPY "<cSource>" [TO "<cTarget>"]
  461.                  
  462.                  Copies the file <cSource> to <cTarget>.  If <cSource>
  463.                  cannot be opened or <cTarget> cannot be created a notation
  464.                  will be made in ROBOCOMM.LOG and script processing will be
  465.                  terminated.  If <cTarget> already exists when the copy
  466.                  begins, it will be replaced with the contents of
  467.                  <cSource>.  <cTarget> is optional, and if not specified,
  468.                  Robocomm will attempt to create a file with the same name
  469.                  as <cSource> in the current directory.
  470.                  
  471.                  Note:  Attempting to COPY a currently open log or capture
  472.                  file is not possible and will result in the termination of
  473.                  script processing.
  474.                  
  475.                  Examples:
  476.                  
  477.                     COPY "C:\ROBOCOMM\GROUPONE.CAP"
  478.                  "C:\OLDCAPS\GROUPONE.CAP"
  479.                     COPY "%QWKDIR%%ID%.PTR"
  480.                  
  481.                  See Also:
  482.                     ERASE
  483.                     RENAME
  484.                  
  485.  
  486.                * DELAY <nSeconds>
  487.                  
  488.                  Pauses all script processing for <nSeconds>.  No
  489.                  characters are read from the active communications port.
  490.                  Absolutely nothing happens, other than a not-so-dramatic
  491.                  pause.  Keep in mind that the BBS may still be sending
  492.                  characters to Robocomm.  If so, they will be stored in
  493.                  Robocomm's internal communications buffer until the end of
  494.                  the delay period.
  495.                  
  496.                  Note: If you set a long delay period, keep in mind that
  497.                  Robocomm may appear to be "frozen" to some users because
  498.                  the timeout counter in the upper corner of the screen will
  499.                  not update.  If you are worried that some user may
  500.  
  501.  
  502.  
  503.           _________________________________________________________________
  504.           Robocomm 4.1 - Script Language Reference                 Page: 6
  505.  
  506.  
  507.  
  508.  
  509.           
  510.  
  511.  
  512.                  over-react to this condition, consider placing a MESSAGE
  513.                  command to place a notation in the lower log window before
  514.                  the call to DELAY.
  515.                  
  516.                  Example:
  517.                  
  518.                     DELAY 10
  519.                  
  520.  
  521.                * DISABLE <nWatch>
  522.                  
  523.                  Temporarily disable a watch installed via the WHEN
  524.                  command.  The contents of watch number <nWatch> will not
  525.                  be compared against incoming text during subsequent
  526.                  WAITFOR processing.  The watch may be reactivated later
  527.                  with the ENABLE command.
  528.                  
  529.                  Example:
  530.                  
  531.                     DISABLE 5
  532.                  
  533.                  See Also:
  534.                     WHEN
  535.                     WAITFOR
  536.                     ENABLE
  537.                     CLEAR WATCHES
  538.                  
  539.  
  540.                * DOWNLOAD ["<cFileSpec>"] [USING "<cProtocol>"] [RESUMEOK |
  541.                  OVERWRITE]
  542.                  
  543.                  Downloads a file to <cFileSpec> using <cProtocol>.
  544.                  
  545.                  <cFileSpec> may be a complete filename or a download path.
  546.                  If the protocol you select is a batch protocol and the BBS
  547.                  sends a file of a different name than that specified in
  548.                  <cFileSpec>, Robocomm will attempt to rename the file to
  549.                  the specified name after the download is complete.
  550.                  <cFileSpec> defaults to the currently defined file
  551.                  download directory.
  552.                  
  553.                  USING "<cProtocol>" is an optional parameter which
  554.                  specifies the protocol or batch file to use for the
  555.                  transfer.  All of Robocomm's internal protocols, "ZMODEM",
  556.                  "YMODEM","YMODEM-G", "ASCII" are valid values for
  557.                  <cProtocol>, as is the name any batch file which uses
  558.                  Robocomm's standard method for communicating with batch
  559.                  files.
  560.  
  561.  
  562.  
  563.           _________________________________________________________________
  564.           Robocomm 4.1 - Script Language Reference                 Page: 7
  565.  
  566.  
  567.  
  568.  
  569.           
  570.  
  571.  
  572.                  <cProtocol> defaults to the currently defined file
  573.                  download protocol.
  574.                  
  575.                  If you are using Robocomm's internal ZMODEM protocol, you
  576.                  may inform the protocol that it is OK to attempt to resume
  577.                  an aborted transfer by adding the RESUMEOK directive to
  578.                  the DOWNLOAD command line.  The existing portion of the
  579.                  file will be verified with the sending file and a resume
  580.                  will be attempted if possible.
  581.                  
  582.                  If you anticipate that the DOWNLOAD command will be
  583.                  receiving a file which already exists, then you may
  584.                  specify the OVERWRITE directive to replace the existing
  585.                  file with the file being downloaded.
  586.                  
  587.                  Examples:
  588.                  
  589.                     DOWNLOAD
  590.                  
  591.                  This command will use the currently defined file download
  592.                  path and protocol to receive a file.
  593.                  
  594.                     DOWNLOAD "%ULDIR%" USING "YMODEM-G"
  595.                  
  596.                  Downloads files to your configured file upload directory
  597.                  using Robocomm's internal Ymodem-G.
  598.                  
  599.                     DOWNLOAD USING "ROBORH"
  600.                  
  601.                  Downloads files to the default file download directory
  602.                  using the HS/Link external batch protocol.
  603.                  
  604.                  
  605.                  
  606.  
  607.                * ENABLE <nWatch>
  608.                  
  609.                  Resume processing of a watch previously suspended with the
  610.                  DISABLE command.  If text read from the communications
  611.                  port during a WAITFOR matches the contents of watch number
  612.                  <nWatch> the previously indicated action will be executed.
  613.                  
  614.                  Example:
  615.                  
  616.                     ENABLE 3
  617.                  
  618.                  See Also:
  619.                     WAITFOR
  620.  
  621.  
  622.  
  623.           _________________________________________________________________
  624.           Robocomm 4.1 - Script Language Reference                 Page: 8
  625.  
  626.  
  627.  
  628.  
  629.           
  630.  
  631.  
  632.                     WHEN
  633.                     DISABLE
  634.                  
  635.  
  636.                * ERASE "<cFile>"
  637.                  
  638.                  Erases <cFile> from disk.  No error is returned and script
  639.                  processing will continue normally if <cFile> does not
  640.                  exist.  If <cFile> does exist, it will be deleted.
  641.                  
  642.  
  643.                * EXIT <nReturnVal>
  644.                  
  645.                  Quits script processing and returns to the agenda control
  646.                  level.  If <nReturnVal> is greater than zero, a notation
  647.                  will be made in the log and the "Execute Script" agenda
  648.                  item will be marked with an exclamation mark.  The
  649.                  exclamation mark implies an error, and will prevent the
  650.                  agenda item from being deleted if it has "temporary"
  651.                  status.
  652.                  
  653.                  <nReturnVal> defaults to zero.  If the script returns zero
  654.                  to the agenda processing module, the task will be marked
  655.                  as completed.  This means that if the "Execute Script"
  656.                  agenda item was temporary it will be removed from the
  657.                  agenda on its next "re-set" operation.
  658.                  
  659.  
  660.                * GOSUB <label>
  661.                  
  662.                  Branches control flow to the line following the specified
  663.                  <label>.  Control will remain at the specified level until
  664.                  a RETURN statement is encountered, at which time agenda
  665.                  processing will resume with the first valid command line
  666.                  immediately following the GOSUB statement.  GOSUBs may be
  667.                  nested 4096 levels deep.
  668.                  
  669.                  Example:
  670.                  
  671.                  The following script lines, would send "Robocomm 4.1" to
  672.                  the BBS:
  673.                  
  674.                     GOSUB firstpart
  675.                        SEND "4.1"
  676.                  
  677.                     :FIRSTPART
  678.                        SEND "Robocomm "
  679.                     RETURN
  680.  
  681.  
  682.  
  683.           _________________________________________________________________
  684.           Robocomm 4.1 - Script Language Reference                 Page: 9
  685.  
  686.  
  687.  
  688.  
  689.           
  690.  
  691.  
  692.                  
  693.                  See Also:
  694.                     GOTO
  695.                     RETURN
  696.                  
  697.  
  698.                * GOTO <label>
  699.                  
  700.                  Pass the sauce.  Spaghetti code lives!  The ubiquitous
  701.                  GOTO command will branch script control to the line
  702.                  following the specified <label> and never  look back.
  703.                  It's up to you to keep track of where the program's going
  704.                  when you use GOTOs.
  705.                  
  706.                  Example:  The following code produces an infinite loop,
  707.                  from which Robocomm will never recover without a loving
  708.                  keystroke from you.  
  709.                  
  710.                     :Label1
  711.                        Send "Even robots can get "
  712.                        GOTO Label3
  713.                  
  714.                     :Label2
  715.                        Send "Dizzy!!! |"
  716.                        GOTO Label1
  717.                  
  718.                     :Label3
  719.                        Send "a little bit "
  720.                        GOTO "Label2
  721.                  
  722.                  NOTE: Pressing the F3 "Abort Agenda" or "F1" jump to
  723.                  terminal keys during a runaway script are your escape
  724.                  hatches in instances like these.
  725.                  
  726.                  See Also:
  727.                     GOSUB
  728.                     Two Guys From Italy.
  729.                  
  730.  
  731.                * HANGUP
  732.                  
  733.                  Terminates the current connection by hanging up the modem.
  734.                  Script processing continues after the disconnection with
  735.                  the line following the hangup command.  If a WAITFOR
  736.                  command is issued subsequent to a disconnection, Robocomm
  737.                  will assume that you did not intend to drop carrier and
  738.                  will abort the current script.
  739.                  
  740.  
  741.  
  742.  
  743.           _________________________________________________________________
  744.           Robocomm 4.1 - Script Language Reference                 Page: 10
  745.  
  746.  
  747.  
  748.  
  749.           
  750.  
  751.  
  752.                * IF [NOT] <condition> ["<argument>"] <command>
  753.                  
  754.                  Evaluates <condition> and executes the script command
  755.                  <command> if it is true.  The optional NOT parameter may
  756.                  be added immediately following the keyword IF when you
  757.                  want to execute <command> only when <condition> is not
  758.                  true.
  759.                  
  760.  
  761.                  1. EMPTY
  762.                     
  763.                     Use this command to test the existence of a parameter.
  764.                     If a parameter is not passed (i.e. left blank on the
  765.                     agenda editing screen), then EMPTY will be true.
  766.                     
  767.                     Examples:
  768.                     
  769.                     IF EMPTY "%P1%" GOTO ERROR
  770.                     IF NOT EMPTY "%P2%" SEND "%P2%|"
  771.                     
  772.  
  773.                  2. EXIST
  774.                     
  775.                     Use this test for the existence of a file.
  776.                     
  777.                     Examples:
  778.                     
  779.                     IF EXIST "C:\QWKS\GROUPONE.KEY" GOTO SENDKEY
  780.                     IF NOT EXIST "%ID%.RLY" GOSUB GETMSGS
  781.                     IF EXIST "ALLFILES.ZIP" RENAME "ALLFILES.ZIP" TO
  782.                     "ALLFILES.OLD"
  783.                     
  784.  
  785.                  3. DAY
  786.                     
  787.                     Robocomm can test today's day of week with the use of
  788.                     any of these keywords.
  789.                     
  790.                     Examples:
  791.                     
  792.                     IF NOT DAY "SUN" GOTO WORK
  793.                     IF DAY "SUN" GOTO CHURCH
  794.                     IF DAY "MON" RENAME "BULL_1.CAP" TO "BULL_1.MON"
  795.                     
  796.  
  797.                  4. DIR
  798.                     
  799.  
  800.  
  801.  
  802.  
  803.           _________________________________________________________________
  804.           Robocomm 4.1 - Script Language Reference                 Page: 11
  805.  
  806.  
  807.  
  808.  
  809.                     Use this option test for the existence of a
  810.                     subdirectory on a disk.
  811.                     
  812.                     Examples:
  813.                     
  814.                     IF DIR C:\SCRIPTDIR\TEMP\ GOTO KILLDIR
  815.                     
  816.                     IF NOT DIR \TEMP MD \TEMP
  817.  
  818.                  5. CONNECTED
  819.                     
  820.                     Tests if the modem is currently connected with a BBS
  821.                     system.
  822.                     
  823.                     Examples:
  824.                     
  825.                     IF CONNECTED SEND "BYE|"
  826.                     IF NOT CONNECTED GOSUB CLEANUP
  827.                     
  828.  
  829.                  6. ERRORLEVEL
  830.                     
  831.                     Tests to see is the last command executed with the RUN
  832.                     command set an errorlevel greater than zero.
  833.                     
  834.                     IF ERRORLEVEL GOTO TRYAGAIN
  835.                     IF NOT ERRORLEVEL GOTO SUCCESS
  836.                     
  837.                  7. YES
  838.  
  839.                     Checks to see if a parameter is equal to Y,y,YES,
  840.                     Yes or yes.
  841.  
  842.                     IF YES "%P3%" GOTO SENDREP
  843.  
  844.                * IMPORT ["A"|"D"] "<cFile>" [EXISTONLY]
  845.                  
  846.                  This command allows you to import the <cFile> file listing
  847.                  into Robocomm's "Available Files" or "Downloaded Files"
  848.                  directory.  The optional letter "A" or "D" tells Robocomm
  849.                  which file directory to send the file names to.  By
  850.                  default Robocomm sends file listings to the "Available
  851.                  Files" directory.  The optional EXISTONLY clause tells
  852.                  Robocomm to only import those files that can be located in
  853.                  your configured download, upload or search directories.
  854.                  
  855.                  Example:
  856.                     IMPORT "D" "VAMPIRE.CAP" EXISTONLY
  857.                  
  858.                  This command tells Robocomm to import VAMPIRE.CAP into the
  859.                  "D"ownloaded files directory, adding only those files to
  860.                  the directory that can be found in any of Robocomm's
  861.                  configured search directories.  NOTE: If you are
  862.                  creating a file list in a script, you can use the
  863.                  CONFSTAMP "<text>" script command to write the current
  864.                  conference marker to the capture file.
  865.  
  866.           _________________________________________________________________
  867.           Robocomm 4.1 - Script Language Reference                 Page: 12
  868.  
  869.  
  870.  
  871.  
  872.           
  873.  
  874.  
  875.                  
  876.                     IMPORT "GIFS.CAP"
  877.                  
  878.                  This command tells Robocomm to import the file GIFS.CAP
  879.                  into the available files directory.
  880.                  
  881.  
  882.                * JOIN "<cConference>"
  883.                  
  884.                  Attempts to join the conference specified, using the
  885.                  prompts defined on the Directory-BBS-Prompts screen for
  886.                  the currently connected BBS.  Script processing is aborted
  887.                  if the Join attempt is unsuccessful or cannot be verified.
  888.                  
  889.                  Examples:
  890.                  
  891.                     JOIN "0"
  892.                  
  893.                  Attempts to navigate to the "Main Board" prompt.
  894.                  
  895.                     JOIN "Robocomm"
  896.                  
  897.                  Attempts to navigate to the "Robocomm Conference Command"
  898.                  prompt.
  899.                  
  900.  
  901.                * MD "<cDirectory>"
  902.                  
  903.                  Attempts to create a subdirectory named <cDirectory>.
  904.                  
  905.                  Note: If the specified directory cannot be created,
  906.                  Robocomm will make a log notation and abort the script
  907.                  processing.
  908.                  
  909.                  Example:
  910.                  
  911.                     MD "C:\TEMPDOWN"
  912.                  
  913.                  See Also:
  914.                     CD
  915.                     RD
  916.                  
  917.  
  918.                * MESSAGE "<cString>"
  919.                  
  920.                  Posts <cString> as a message in ROBOCOMM.LOG.  
  921.                  
  922.  
  923.  
  924.  
  925.  
  926.           _________________________________________________________________
  927.           Robocomm 4.1 - Script Language Reference                 Page: 13
  928.  
  929.  
  930.  
  931.  
  932.           
  933.  
  934.  
  935.                * NOTES "<cFile>"
  936.                  
  937.                  This command places the contents of <cFile> into
  938.                  Robocomm's internal data structures so that the data can
  939.                  be viewed later via Robocomm's "Notes" command on the
  940.                  Directory-BBS screen.
  941.                  
  942.                  NOTE: Robocomm will not import a file longer than 10,240
  943.                  characters.  Attempts to do so will be ignored.
  944.                  
  945.                  Example:
  946.                  
  947.                     NOTES "%ID%.NOT"
  948.                  
  949.  
  950.                * PARAMETER [nNumber] "<cPrompt>"
  951.                  
  952.                  Defines a parameter question that will be used to prompt
  953.                  the user for input at agenda creation time.  <cPrompt> may
  954.                  be up to 40 characters in length.  The user will be
  955.                  allowed to input up to 128 characters.
  956.                  
  957.                  NOTE: The optional nNumber argument is really only for
  958.                  readability purposes and is not examined by Robocomm at
  959.                  all.  Robocomm numbers parameters sequentially, in the
  960.                  order they are encountered within  the script file.
  961.                  
  962.                  Example:
  963.                  
  964.                  PARAMETER "Heard any good jokes lately?"
  965.                  
  966.  
  967.                * PASSWORD "<cPassword>"
  968.                  
  969.                  Updates the password in the Directory-BBS record for the
  970.                  current BBS with <cPassword>.
  971.                  
  972.                  Example:
  973.                  
  974.                     PASSWORD "NewPass"
  975.                  
  976.  
  977.                * RD "<cDirectory>"
  978.                     
  979.                  Attempts to remove subdirectory <cDirectory>.  The
  980.                  specified directory must be completely empty, with no
  981.                  hidden files or subdirectories.
  982.                  
  983.  
  984.  
  985.  
  986.           _________________________________________________________________
  987.           Robocomm 4.1 - Script Language Reference                 Page: 14
  988.  
  989.  
  990.  
  991.  
  992.           
  993.  
  994.  
  995.                  Note: If the specified directory cannot be removed,
  996.                  Robocomm will make a log notation and abort the script
  997.                  processing.
  998.                  
  999.                  Example:
  1000.                  
  1001.                     RD "C:\GONNER"
  1002.                  
  1003.                  See Also:
  1004.                     CD
  1005.                     MD
  1006.                  
  1007.  
  1008.                * RENAME "<cfile>" [TO] "<cNewName>"
  1009.                  
  1010.                  Attempts to rename <cFile> to <cNewName>.  Just as with
  1011.                  DOS, this command will fail if a file names <cNewName>
  1012.                  already exists.  The TO clause is optional, and functions
  1013.                  only to enhance readability.
  1014.                  
  1015.  
  1016.                * RENUMBER "<cFile>" [<nCount>]
  1017.                  
  1018.                  Uses Robocomm's internal renumbering scheme to maintain a
  1019.                  <nCount>   archived versions of <cFile>.  <nCount>
  1020.                  defaults to 1 if not specified.
  1021.                  
  1022.                  Example:
  1023.                  
  1024.                  RENUMBER "VAMPIRE.CAP" 5
  1025.                  
  1026.  
  1027.                * RETURN
  1028.                  
  1029.                  Causes script process control to return to the first valid
  1030.                  command line immediately following the most recent GOSUB
  1031.                  command.
  1032.                  
  1033.                  Example:
  1034.                  
  1035.                     IF SUN GOSUB GETFILES
  1036.                     SEND "BYE|"
  1037.                     EXIT 0
  1038.                  
  1039.                     :GETFILES
  1040.                        MESSAGE "It's Sunday.  Downloading and processing
  1041.                  Allfiles"
  1042.                        RENUMBER "%DLDIR%ALLFILES.ZIP" 2
  1043.  
  1044.  
  1045.  
  1046.           _________________________________________________________________
  1047.           Robocomm 4.1 - Script Language Reference                 Page: 15
  1048.  
  1049.  
  1050.  
  1051.  
  1052.           
  1053.  
  1054.  
  1055.                        SEND "D;ALLFILES.ZIP|"
  1056.                        DOWNLOAD
  1057.                     RETURN
  1058.                  
  1059.                  
  1060.  
  1061.                * RUN "<cDosCommand>" [KEYBOARD "<cKeyString>"]
  1062.                  
  1063.                  Shells to DOS and runs the command <cDosCommand>.  If you
  1064.                  need to test the result of the called process, the
  1065.                  ERRORLEVEL set by the called program is retained by
  1066.                  Robocomm to be queried with the IF ERRORLEVEL script
  1067.                  command.
  1068.                  
  1069.                  Note: Robocomm's current drive and directory is always
  1070.                  restored automatically after the called process returns
  1071.                  control.
  1072.                  
  1073.                  Examples:
  1074.                  
  1075.                     RUN "Rexclude c:\download"
  1076.                  
  1077.                  CAUTION:  If you do not plan on exploring the KEYBOARD
  1078.                  clause, detailed below, be sure not to call any process
  1079.                  from within Robocomm that will require a keypress.  If you
  1080.                  do this and aren't around to manually press the required
  1081.                  key, Robocomm will be unable to recover and all processing
  1082.                  will halt until you show up to rectify the situation.
  1083.                  
  1084.                  Using the KEYBOARD clause:
  1085.                  
  1086.                  In cases where you really want to run an external program
  1087.                  that requires keystrokes, the optional KEYBOARD command
  1088.                  can help.  This command stuffs the keyboard by temporarily
  1089.                  taking over BIOS interrupt 16h.  Thus, you can automate
  1090.                  all or part of the program that you call with Robocomm's
  1091.                  RUN command.  
  1092.                  
  1093.                  This capability was inspired by a memory resident program
  1094.                  called Key-Fake by Charles Petzold and copyrighted by
  1095.                  Ziff-Davis Publishing Company.  Mr. Petzold did an
  1096.                  excellent job and Robocomm imitates, with a few
  1097.                  enhancements, Mr. Petzold's method of defining the keys to
  1098.                  stuff the keyboard.  The KEYBOARD command function works
  1099.                  with almost any programs you might want to call, except
  1100.                  for those rare  programs that directly take over the
  1101.                  keyboard. 
  1102.                  
  1103.  
  1104.  
  1105.  
  1106.           _________________________________________________________________
  1107.           Robocomm 4.1 - Script Language Reference                 Page: 16
  1108.  
  1109.  
  1110.  
  1111.  
  1112.           
  1113.  
  1114.  
  1115.                  The KEYBOARD <cKeyString> is a character string parameter.
  1116.                  This character string can contain:  
  1117.                  
  1118.                     1) embedded character strings.
  1119.                     2) named keys within curly brackets.
  1120.                     3) the number 0 by itself.
  1121.                     4) the number 1 by itself.
  1122.                  
  1123.                  
  1124.                  1) Embedded character strings:  
  1125.                  
  1126.                  Characters within inner quotes (either single or double
  1127.                  quotes) are normal ASCII characters. KEYBOARD
  1128.                  "'EXIT'"would stuff the keyboard with the four keys 'E',
  1129.                  'X', 'I', and 'T'.  
  1130.                  
  1131.                  Normally, these characters are limited to those
  1132.                  alphabetical, numeric, and symbol characters that can be
  1133.                  typed at the keyboard.  Keys such as <F1> and <Insert>
  1134.                  cannot be specified this way.  You can specify other non-
  1135.                  keyboard characters such as graphics characters which are
  1136.                  not normally available from the keyboard.  
  1137.                  
  1138.                  If non- keyboard characters are specified, KEYBOARD will
  1139.                  attempt to pass them to the called program, but some
  1140.                  programs may not be able to accept them.  Please note that
  1141.                  the character string passed to KEYBOARD begins and ends
  1142.                  with double quotes ("), and that the inner string begins
  1143.                  and ends with single quotes (').
  1144.                  
  1145.                  
  1146.                  2) Named keys within curly braces:  
  1147.                  
  1148.                  In order to specify keys such as <F1>, <Insert>, and
  1149.                  <Ctrl-A>, you must specify them within curly braces.
  1150.                  KEYBOARD can handle every possible key combination that
  1151.                  converts to a keycode.  Some keys such as the
  1152.                  <PrintScreen> and <NumLock> have no keycode value and
  1153.                  cannot be stuffed with KEYBOARD.  
  1154.                  
  1155.                  When specifying the keys, case is not important.  You may
  1156.                  use uppercase, lowercase, or mixed case.  The keys are
  1157.                  specified with the form {[<switch>-]keyname} where keyname
  1158.                  is the name of the key optionally preceded by one of the
  1159.                  switch keys: <Shift>, <Ctrl>, <Alt>.  Only one switch key
  1160.                  can be specified because they are mutually exclusive.
  1161.                  When more than one switch key is pressed at a time, the
  1162.  
  1163.  
  1164.  
  1165.  
  1166.           _________________________________________________________________
  1167.           Robocomm 4.1 - Script Language Reference                 Page: 17
  1168.  
  1169.  
  1170.  
  1171.  
  1172.           
  1173.  
  1174.  
  1175.                  <Ctrl> key overrides the <Shift> key and the <Alt> key
  1176.                  overrides the <Ctrl> key. 
  1177.                  
  1178.                  The following keys are valid:  
  1179.                  
  1180.                     {F1}..{F12} 
  1181.                     {Shift-F1}..{Shift-F12}
  1182.                     {Ctrl-F1}..{Ctrl-F12} 
  1183.                     {Alt-F1}..{Alt-F12} 
  1184.                  
  1185.                  Note that F11 and F12 are only available on enhanced
  1186.                  keyboards and may not be accepted by a program running on
  1187.                  a computer with a standard keyboard.  
  1188.                  
  1189.                     {Ctrl-A}..{Ctrl-Z} 
  1190.                     {Alt-A}..{Alt-Z}  
  1191.                     {Ctrl-0}..{Ctrl-9} 
  1192.                     {Alt-0}..{Alt-9} 
  1193.                  
  1194.                  These keys correspond to the keys on both the numeric
  1195.                  keypad and the QWERTY keyboard when a standard keyboard is
  1196.                  in use.  An enhanced keyboard can differentiate between
  1197.                  the numeric keypad and the QWERTY keyboard if the software
  1198.                  enables it to do so.  If the software you're using
  1199.                  requires that the numbers come from the numeric keypad,
  1200.                  use the # symbol explained below.
  1201.                  
  1202.                  {<Symbol>}
  1203.                  {Ctrl-<Symbol>}
  1204.                  {Alt-<Symbol>}
  1205.                  where <Symbol> is anyone of the 30+ symbols available on
  1206.                  the keyboard such as !@#$%&*~_-+={}[]|\:;"'<>,.?.
  1207.                  
  1208.                  {Enter}, {Esc}, {Tab}, {Bksp}, {Space}
  1209.                  {Ctrl-Enter}..{Ctrl-Space}
  1210.                  {Alt-Enter}..{Alt-Space}
  1211.                  
  1212.                  {Home}, {End}, {PgUp}, {PgDn}, {Left}, {Right}, {Up},
  1213.                  {Down}, {Ins}, {Del}
  1214.                  {Ctrl-Home}..{Ctrl-Del}
  1215.                  {Alt-Home}..{Alt-Del}
  1216.                  These keys are all found on the numeric keypad.
  1217.                  
  1218.                  {*Home}, {*End}, {*PgUp}, {*PgDn}, {*Left}, {*Right},
  1219.                  {*Up}, {*Down}, {*Ins}, {*Del}
  1220.                  {Ctrl-*Home}..{Ctrl-*Del}
  1221.                  {Alt-*Home}..{Alt-*Del} 
  1222.  
  1223.  
  1224.  
  1225.  
  1226.           _________________________________________________________________
  1227.           Robocomm 4.1 - Script Language Reference                 Page: 18
  1228.  
  1229.  
  1230.  
  1231.  
  1232.           
  1233.  
  1234.  
  1235.                  where the * symbol stands for the extra cursor control pad
  1236.                  available on enhanced keyboards.  These keys can only be
  1237.                  specified when an enhanced keyboard is in use; these keys
  1238.                  are not available on a standard keyboard.  Use these keys
  1239.                  when the software requires that the keypress be from the
  1240.                  extra cursor control pad.  
  1241.                  
  1242.                  {#0}..{#9}, {#.}, {#}, {#*}, {#-}, {#+}, {#Enter}
  1243.                  {Ctrl-#0}..{Ctrl-#9}, {Ctrl-#.}..{Ctrl-#Enter} 
  1244.                  {Alt-#0}..{Alt-#9}, {Alt-#.}..{Alt-#Enter} 
  1245.                  where the # symbol stands for the numeric keypad.  These
  1246.                  keys can only be specified when an enhanced keyboard is in
  1247.                  use; a standard keyboard does not differentiate the
  1248.                  numeric keypad keys from their QWERTY keyboard
  1249.                  counterparts.  Use these keys when the software requires
  1250.                  that the keypress be from the numeric keypad only.  
  1251.                  
  1252.                  {SysReq} 
  1253.                  notice that the {SysReq} key is specified without the
  1254.                  {Ctrl-} prefix. 
  1255.                  
  1256.                  
  1257.                  3) The number 0 by itself:  
  1258.                  
  1259.                  The number 0 by itself is a special symbol to KEYBOARD; it
  1260.                  tells the function to report back to the called program,
  1261.                  at that point, that the keyboard buffer is empty.  This
  1262.                  should be unnecessary for most programs, but if you find
  1263.                  that at some point the called program seems to clear the
  1264.                  keyboard buffer or lose keystrokes, you may need to use a
  1265.                  0 to fool the program into thinking the keyboard buffer is
  1266.                  empty.  By default, KEYBOARD stuffs a 0 key after each
  1267.                  keystroke.  This makes the external program think that the
  1268.                  keyboard buffer is empty after each keystroke.  This is
  1269.                  necessary because some programs clear the keyboard buffer
  1270.                  after each keystroke.
  1271.                  
  1272.                  4) The number 1 by itself:  
  1273.                  
  1274.                  The number 1 by itself is also a special symbol to
  1275.                  KEYBOARD.  It tells the function to wait for the user to
  1276.                  hit a key before continuing; the keystroke is then passed
  1277.                  directly to the external program.  Obviously, this
  1278.                  capability has limited usefulness in an unattended
  1279.                  environment, but is useful when the user must make a
  1280.                  choice or enter a secret code before KEYBOARD can continue
  1281.                  stuffing more keys.
  1282.                  
  1283.  
  1284.  
  1285.  
  1286.           _________________________________________________________________
  1287.           Robocomm 4.1 - Script Language Reference                 Page: 19
  1288.  
  1289.  
  1290.  
  1291.  
  1292.           
  1293.  
  1294.  
  1295.                  Summary:  
  1296.                  
  1297.                  All of these key definitions can be put in the same
  1298.                  character string.  You are currently limited to stuffing
  1299.                  250 keystrokes into the keyboard.  Some programs take over
  1300.                  the keyboard directly, which keeps Robocomm from stuffing
  1301.                  the keyboard.  There is nothing that can be done about
  1302.                  these programs, but they are definitely in the minority.
  1303.                  
  1304.                  Example:
  1305.                  
  1306.                  Import Robocomm's TRANSFER.LOG into a dBASE database using
  1307.                  FoxPro:
  1308.                  
  1309.                  RUN "foxproln" KEYBOARD "`USE TRANSFER.DBF` {ENTER} `APPE
  1310.                  FROM TRANSFER.LOG` {ENTER} `QUIT` {ENTER}"
  1311.                  
  1312.                  In our doc file, that line wrapped to a second line, but
  1313.                  in your script file, it should be all on one line.
  1314.                  
  1315.                  
  1316.  
  1317.                * SEND "<cString>"
  1318.                  
  1319.                  This command sends one or more characters to the BBS.
  1320.                  Before sending the text, Robocomm will look for the
  1321.                  existence of two special characters; the pipe "|", the
  1322.                  carat "^" and the tilde "~".  Use the pipe character
  1323.                  whenever you would like Robocomm to send a carriage
  1324.                  return.  Use the carat to signify that the next character
  1325.                  is a "control character."   Use the tilde whenever you
  1326.                  would like Robocomm to pause for on half second before
  1327.                  sending the next character.
  1328.                  
  1329.                  Examples:
  1330.                  
  1331.                  SEND "^X^X~~~~^X^X"
  1332.                  
  1333.                  This example sends two "Control-X" characters, pauses for
  1334.                  2 seconds, and then sends another paid of Control-X
  1335.                  characters.  This is the key sequence that is commonly
  1336.                  used to abort a file transfer.
  1337.                  
  1338.                  SEND "B|1|"
  1339.                  
  1340.                  This example sends the letter "B" followed by a carriage
  1341.                  return (ASCII code 13), followed again by the number 1 and
  1342.                  another carriage return.
  1343.  
  1344.  
  1345.  
  1346.           _________________________________________________________________
  1347.           Robocomm 4.1 - Script Language Reference                 Page: 20
  1348.  
  1349.  
  1350.  
  1351.  
  1352.           
  1353.  
  1354.  
  1355.                  
  1356.                  NOTE:  Robocomm does not automatically append a carriage
  1357.                  return to the text you specify between quotes.  If a
  1358.                  carriage return is required, you must supply it by ending
  1359.                  the string with the | or ^M characters.
  1360.                  
  1361.                  SENDING RESERVED CHARACTERS: To send a tilde, carat or
  1362.                  pipe character to the BBS as part of your send string,
  1363.                  simply place a carat before the character.
  1364.                  
  1365.                     ^^    sends    ^
  1366.                     ^~    sends    ~
  1367.                     ^|    sends    |
  1368.                  
  1369.                  
  1370.  
  1371.                * SOUND <nFrequency> <nDuration>
  1372.                  
  1373.                  Creates a sound on the PC's speaker.
  1374.                  
  1375.                  <nFrequency> is a numeric value indicating the desired
  1376.                  frequency, in the range of 37 to 32767.  If not specified,
  1377.                  <nFrequency> defaults to 500.
  1378.                  
  1379.                  <nDuration> is the amount of time to continue the sound,
  1380.                  in 100ths of a second.
  1381.                  
  1382.                  NOTE: If the user has the speaker style option on
  1383.                  Robocomm's General Configuration screen set to SILENT no
  1384.                  sound will be produced.
  1385.                  
  1386.                  For the musical purists in the group, the following is a
  1387.                  table of values to produce standard musical pitches:
  1388.                  
  1389.                  Pitch           Frequency         Pitch          Frequency
  1390.                  ----------------------------------------------------------
  1391.                  C               130.80            mid C          261.70
  1392.                  C#              138.60            C#             277.20
  1393.                  D               146.80            D              293.70
  1394.                  D#              155.60            D#             311.10
  1395.                  E               164.80            E              329.60
  1396.                  F               174.60            F              349.20
  1397.                  F#              185.00            F#             370.00
  1398.                  G               196.00            G              392.00
  1399.                  G#              207.70            G#             415.30
  1400.                  A               220.00            A              440.00
  1401.                  A#              233.10            A#             466.20
  1402.                  B               246.90            B              493.90
  1403.  
  1404.  
  1405.  
  1406.           _________________________________________________________________
  1407.           Robocomm 4.1 - Script Language Reference                 Page: 21
  1408.  
  1409.  
  1410.  
  1411.  
  1412.           
  1413.  
  1414.  
  1415.                                                    C              523.30
  1416.                  ----------------------------------------------------------
  1417.                  
  1418.  
  1419.                * STATISTICS "<cFile>"
  1420.                  
  1421.                  This command places the contents of <cFile> into
  1422.                  Robocomm's internal data structures so that the data can
  1423.                  be viewed later via Robocomm's "Statistics" command on the
  1424.                  Directory-BBS screen.
  1425.                  
  1426.                  NOTE: Robocomm will not import a file longer than 10,240
  1427.                  characters.  Attempts to do so will be ignored.
  1428.                  
  1429.                  Example:
  1430.                  
  1431.                     STATISTICS "%ID%.STS"
  1432.                  
  1433.  
  1434.                * TERMINAL [NOKEY] [EXITON "<text>"] [DOORWAY]
  1435.  
  1436.                All parameters are optional.  Their purposes are:
  1437.  
  1438.                NOKEY -     Bypasses the alarm and the necessity to press
  1439.                            a key after jumping to terminal.
  1440.  
  1441.                            NOTE: The terminal mode "alarm" is actually a
  1442.                            60 second timer that will enable Robocomm to
  1443.                            recover if no one is around to interact with
  1444.                            the terminal. Using the NOKEY clauses
  1445.                            disables this alarm, so Robocomm will jump to
  1446.                            terminal mode and will not go back to
  1447.                            automated processing until the user presses
  1448.                            Alt-X or when the EXITON text is seen. (See
  1449.                            below)
  1450.  
  1451.                EXITON -    This command allows you to specify a text
  1452.                            string that Robocomm will watch for whenever
  1453.                            it is in terminal mode.  If Robocomm
  1454.                            encounters the specified text it will
  1455.                            immediately exit the terminal mode and resume
  1456.                            script processing.
  1457.  
  1458.                DOORWAY -   This command causes the terminal to start
  1459.                            with "Doorway" mode turned on.
  1460.  
  1461.                            NOTE: You will need to Press [Alt =] to turn
  1462.                            doorway mode off before you can exit with
  1463.                            Alt-X.
  1464.  
  1465.                    Examples:
  1466.  
  1467.                        TERMINAL
  1468.                         Goes into standard terminal mode, sounds alarm.
  1469.                        TERMINAL NOKEY
  1470.                         Goes into standard terminal with no alarm or keypress.
  1471.                        TERMINAL DOORWAY
  1472.                         Goes into Doorway mode terminal, sounds alarm.
  1473.                        TERMINAL EXITON "<EXIT>"
  1474.                         Goes into terminal.  Automatically exits on <EXIT>.
  1475.                        TERMINAL NOKEY DOORWAY EXITON "<EXIT>"
  1476.                         You get the idea...
  1477.                  
  1478.  
  1479.                * TIMEOUT <nSeconds>
  1480.                  
  1481.                  Sets the number of seconds that all subsequent WAITFOR
  1482.                  commands will allow to pass while they watch for their
  1483.                  intended string.  If <nSeconds> elapses before the match
  1484.                  is found, control will pass to the defined WAITFOR FAILURE
  1485.                  clause, or, if none is defined, to the next executable
  1486.                  statement in the script.
  1487.                  
  1488.                  Example:
  1489.                  
  1490.                  TIMEOUT 30
  1491.                  
  1492.                  See Also:
  1493.                     WAITFOR 
  1494.                  
  1495.  
  1496.                * TITLE "<cString>"
  1497.                  
  1498.                  Sets the script title that will appear in the Script
  1499.                  Selection window on the agenda modification screen.
  1500.  
  1501.  
  1502.  
  1503.           _________________________________________________________________
  1504.           Robocomm 4.1 - Script Language Reference                 Page: 22
  1505.  
  1506.  
  1507.  
  1508.  
  1509.           
  1510.  
  1511.  
  1512.                  Although this statement can appear anywhere within the
  1513.                  script file, you should place it as the first line in the
  1514.                  script, to make the Script Selection window pop-up as
  1515.                  rapidly as possible.  It's also a good idea to indicate
  1516.                  the type of BBS system the script is designed to handle in
  1517.                  the title.
  1518.                  
  1519.                  Example:
  1520.                  
  1521.                     TITLE "(PCBoard)  This is a script title example!"
  1522.                  
  1523.  
  1524.                * UPLOAD "<cFileSpec>" [USING "<cProtocol>"]
  1525.                  
  1526.                  Sends <cFileSpec> to the BBS using <cProtocol>.
  1527.                  
  1528.                  <cFileSpec> may be any valid path and/or filename,
  1529.                  including wildcard characters.  If the optional USING
  1530.                  <cProtocol> clause is specified, then Robocomm will use
  1531.                  the protocol specified.  By default Robocomm will attempt
  1532.                  to use configured file upload protocol.  ASCII is a
  1533.                  valid upload protocol type.
  1534.                  
  1535.                  Examples:
  1536.                     UPLOAD "c:\qwks\%ID%.KEY" USING "YMODEM-G"
  1537.                     UPLOAD "C:\OUTGOING\*.ZIP"
  1538.                     UPLOAD "message.txt" USING "ASCII"
  1539.  
  1540.                * VENUE <cVenueCode>
  1541.                  
  1542.                  Attempts to move to the area of the BBS system specified
  1543.                  by cVenueCode.  Valid codes are:
  1544.                  
  1545.                  Code        Description                         Systems
  1546.                  --------    ---------------------------------   -------
  1547.                  MSGS        Go to the message sub-menu          Wildcat
  1548.                  FILE        Go to the file sub-menu             Wildcat
  1549.                  MAIN        Go to the Main Menu                 PCB/WC
  1550.                  MAIL        Go to the defined QWK door          PCB/WC
  1551.                  PRO         Go to ProDoor                       PCB/Pro
  1552.                  
  1553.                  Examples:
  1554.                  
  1555.                     VENUE MAIL
  1556.                     VENUE MSGS
  1557.                  
  1558.                  See also:
  1559.  
  1560.  
  1561.  
  1562.           _________________________________________________________________
  1563.           Robocomm 4.1 - Script Language Reference                 Page: 23
  1564.  
  1565.  
  1566.  
  1567.  
  1568.           
  1569.  
  1570.  
  1571.                     JOIN
  1572.                  
  1573.  
  1574.                * WAITFOR "<cString>" [FAILURE <command>]
  1575.                  
  1576.                  Watches for incoming text matching <cString> while
  1577.                  simultaneously watching for any "watches" defined with the
  1578.                  WHEN command.  The amount of time that Robocomm watches
  1579.                  for text is defined separately with the TIMEOUT command.
  1580.                  
  1581.                  If <cString> is recognized within the allotted time,
  1582.                  Robocomm simply proceeds on to the next executable line in
  1583.                  the script.  If, however, <cString> is not recognized,
  1584.                  Robocomm's subsequent behavior depends upon whether the
  1585.                  optional FAILURE clause has been specified.  If a FAILURE
  1586.                  <command> has been specified, Robocomm will immediately
  1587.                  process <command>.  If no FAILURE command is specified,
  1588.                  then an error message is inserted in the log and script
  1589.                  processing is terminated.
  1590.                  
  1591.                  NOTE: Aside from the file transfer commands.  WAITFOR is
  1592.                  the only script command which actually retrieves incoming
  1593.                  text from the comm port receive buffers.  For this reason,
  1594.                  you will see text scrolling in the online window only
  1595.                  while a WAITFOR is being evaluated.
  1596.                  
  1597.                  NOTE: To copy a list of the currently active watches to
  1598.                  the VERBOSE mode log in Robocomm, simply press [Alt-S]
  1599.                  while Robocomm is watching for text.  This feature will
  1600.                  aid you greatly in debugging your scripts.
  1601.  
  1602.                  Examples:
  1603.                  
  1604.                  The following script fragment sets up a number of watches
  1605.                  via the WHEN command and demonstrates the use of the
  1606.                  WAITFOR command in conjunction with them.
  1607.                  
  1608.                     ; A sample script to download ProDoor ZIPMail packets.
  1609.                     ;
  1610.                     ; FOR DEMONSTRATION PURPOSES ONLY -- NOT TESTED 
  1611.                     ;
  1612.                     TIMEOUT 10
  1613.                     WHEN "MORE?" SEND "N|"
  1614.                     WHEN "[ENTER] TO CONTINUE" SEND "|"
  1615.                     WHEN "SCAN MESSAGES" SEND "N|"
  1616.                     WAITFOR "COMMAND?" FAILURE GOTO ERROR
  1617.                  
  1618.                     TIMEOUT 600
  1619.                     SEND "ZIPM|"
  1620.                     WHEN "NO MESSAGES" GOTO NOMAIL
  1621.                     WHEN "NOT ENOUGH TIME" GOTO ERROR
  1622.                     WHEN "PROTOCOL" SEND "Z|"
  1623.                     WAITFOR "CTRL-X ABORTS" FAILURE GOTO ERROR
  1624.  
  1625.  
  1626.  
  1627.           _________________________________________________________________
  1628.           Robocomm 4.1 - Script Language Reference                 Page: 24
  1629.  
  1630.  
  1631.  
  1632.  
  1633.           
  1634.  
  1635.  
  1636.                     RENUMBER "%QWKDIR%%ID%.ZPM" 5
  1637.                     DOWNLOAD "%QWKDIR%%ID%.ZPM"
  1638.                     EXIT 0
  1639.                  
  1640.                     :ERROR
  1641.                        HANGUP
  1642.                        EXIT 1
  1643.                  
  1644.                     ; End of script.
  1645.                  
  1646.                  See Also:
  1647.                     WHEN
  1648.                     TIMEOUT
  1649.                  
  1650.  
  1651.                * WAITUNTIL ["<cTime>"] ["<cDate>"]
  1652.                  
  1653.                  Pauses script execution until a specified date and/or
  1654.                  time.  
  1655.                  
  1656.                  <cTime> is the time of day to start, in 24 hour format
  1657.                  HH:MM
  1658.                  
  1659.                  <cDay> is the date to start in MM/DD/YY or MM-DD-YY
  1660.                  format.
  1661.                  
  1662.                  Both parameters are optional, but at least one must be
  1663.                  specified.  If <cDate> is not specified, it defaults to
  1664.                  the current date.  If <cTime> is not specified, it
  1665.                  defaults to "00:00" (Midnight).
  1666.                  
  1667.                  Examples:
  1668.                  
  1669.                     WAITUNTIL "06:00"
  1670.                     WAITUNTIL "12:00" "12/13/91"
  1671.                     WAITUNTIL "12/01/91"
  1672.                  
  1673.  
  1674.                * WHEN "<cString>" <command>
  1675.                  
  1676.                  Creates an incoming text watch for <cString> and executes
  1677.                  <command> whenever it is seen.  WHEN commands are valuable
  1678.                  when prompts from the BBS may come in random order or when
  1679.                  a standardized response to a prompt should be sent
  1680.                  whenever a certain prompt is received from the BBS.  It is
  1681.                  important to understand that the WHEN command merely posts
  1682.                  <cString> and <command> for evaluation by the WAITFOR
  1683.  
  1684.  
  1685.  
  1686.  
  1687.           _________________________________________________________________
  1688.           Robocomm 4.1 - Script Language Reference                 Page: 25
  1689.  
  1690.  
  1691.  
  1692.  
  1693.           
  1694.  
  1695.  
  1696.                  command.  Thus, WHENs are only valid while a WAITFOR is
  1697.                  currently being evaluated.  
  1698.                  
  1699.                  Example:
  1700.                     See example under the WAITFOR command.
  1701.                  
  1702.                  See Also:
  1703.                     WAITFOR
  1704.                     DISABLE
  1705.                     ENABLE
  1706.                     CLEAR
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.           _________________________________________________________________
  1748.           Robocomm 4.1 - Script Language Reference                 Page: 26
  1749.  
  1750.                
  1751.                         -----------------------
  1752.                         SCRIPT.DOC - APPENDIX A
  1753.                         -----------------------
  1754.  
  1755. Directory-BBS Field Macros
  1756. --------------------------
  1757.  
  1758. The following %BBS??% macros are all to non-prompt related items:
  1759.  
  1760. Macro # Description
  1761. ------- ----------------------------------------------------
  1762. 1       The BBS Robocomm/Mail ID.  (duplicated by %ID%)
  1763. 2       The BBS Name
  1764. 3       Phone Number #1  \
  1765. 4       Phone Number #2   |-- Dialing macros A-J NOT expanded.
  1766. 5       Phone Number #3  /
  1767. 7       Login Password
  1768. 13      Login Name
  1769. 17      Qmail Door Conference
  1770. 19      File Upload Protocol
  1771. 20      File Download Protocol
  1772. 21      Mail Door Upload Protocol
  1773. 22      Mail Door Download Protocol
  1774. 60      PC-Pursuit outdial city
  1775. 63      Command to Open Mail Door (Wildcat!) or  Door Number/Name (PCBoard)
  1776. 66      Upload area               (Wildcat! only)
  1777.  
  1778.  
  1779. ------------------------------------------------------------------------
  1780. The Following BBS?? Macros are the defined prompt definitions for
  1781. PCBoard Systems:
  1782.  
  1783. 29      Language to use
  1784. 30      Help prompt
  1785. 31      Do you want graphics
  1786. 32      More?
  1787. 33      Scan Messages
  1788. 34      Pause - "Enter to Continue"
  1789. 35      Main Board Prompt
  1790. 36      Confernce ID string (# translated to conference number)
  1791. 37      Upload file description
  1792. 38      No Protocol Defined
  1793. 39      Start Transfer
  1794. 40      Mail Door Main Command
  1795. 41      Start Mail Download
  1796. 42      Start Mail Upload
  1797. 43      Packet Transfer Confirmation.
  1798. 44      No Mail to Download
  1799. 45      Enter First Name
  1800. 46      Enter Password (logon)
  1801. 47      Message Menu Prompt
  1802. 48      Download File Not Found
  1803. 49      Generic Command (usually "Command")
  1804. 50      Duplicate Upload
  1805. 51      Insufficient security to download (restricted access)
  1806. 52      Not enough time/bytes to download.
  1807. 53      Upload file not accepted
  1808. 54      ProDoor: Enter Upload Description
  1809. 55      <not in use>
  1810. 56      ProDoor: Main Board Command
  1811. 57      <not in use>
  1812. 58      ProDoor: Start Transfer
  1813. 59      Front End Prompt (Usually "DOOR #")
  1814. 70      Front End Mail Program (Robo sends 2 ESC characters)
  1815. 71      Not enough time to download mail
  1816.  
  1817.  
  1818.  
  1819. -----------------------------------------------------------------------
  1820. The Following BBS?? Macros are the defined prompt definitions for
  1821. Wildcat! Systems:
  1822.  
  1823. 29      Read Bulletins?
  1824. 30      View Mail?
  1825. 31      Location Confirmation (are you xxxx from xxxx?)
  1826. 32      Press Enter to Continue
  1827. 33      Enter Birthday
  1828. 34      Pause
  1829. 35      Main Menu
  1830. 36      Confernce ID string (# translated to conference number)
  1831. 37      Upload file description
  1832. 38      Bulletin Menu
  1833. 39      Start File Download
  1834. 40      Mail Door (TomCat) Command Prompt
  1835. 41      Start Mail Download
  1836. 42      Start Mail Upload
  1837. 43      Packet Transfer Confirmation.
  1838. 44      No Mail to Download
  1839. 45      Enter First Name
  1840. 46      Enter Password (logon)
  1841. 47      Message Menu Prompt
  1842. 48      File Name to Download
  1843. 49      Read Newsletter?
  1844. 50      Duplicate Upload
  1845. 51      Upload file not a duplicate
  1846. 52      Logon name failure
  1847. 53      Start file upload
  1848. 54      File Menu
  1849. 55      Enter Last Name
  1850. 56      Phone number confirmation
  1851. 57      <not in use>
  1852. 58      D/L File Found
  1853. 59      Front End Prompt (Usually "DOOR #")
  1854. 70      File Upload Rename
  1855. 71      Extended Descriptions
  1856. 72      File Keywords
  1857. 73      Not Enough Time to Download Mail
  1858. 74      Choose Upload Area
  1859. 75      Not Enough Time to Download
  1860. 76      Not Enough Bytes to Download
  1861. 77      Not Enough Credit to Download
  1862. 78      Password protect upload question
  1863.  
  1864.  
  1865. ------------------------------------------------------------------------------
  1866. The following %WC?% macros are the defined commands for the currently
  1867. connected Wildcat BBS system:
  1868.  
  1869.  
  1870. Number  Command                                       Default
  1871. ------  --------------------------------------------  -------
  1872.   1     Quit from FILE or MESSAGE menu to MAIN menu.     Q
  1873.   2     Go to the MESSAGE menu from the MAIN menu.       M
  1874.   3     Go to the FILE menu from the MAIN menu.          F
  1875.   4     Start file download sequence                     D
  1876.   5     Start file upload sequence                       U
  1877.   6     "Info Scan" a downloadable file                  I
  1878.   7     Start the new file scan sequence                 N
  1879.   8     Log off from FILE, MESSAGE or MAIN menus.        G
  1880.   9     Start conference join sequence                   J
  1881.  
  1882.   Example:
  1883.  
  1884.   ; Go to the file menu
  1885.   SEND "%WC3%|"
  1886.  
  1887.  
  1888.